package com.wthink.hzgj.service.jt808

import com.wthink.hzgj.util.DpUtil
import com.wthink.hzgj.util.readBCD
import com.wthink.hzgj.util.readString
import java.nio.ByteBuffer

/**
 * 发车通知
 */
class JT_8B01() : JT808Message() {

    lateinit var line: String
    var ddlx: Int = 0  // 1:上行，2：下行，3：环行
    lateinit var driverId: String  //驾驶员编号
    lateinit var driverName: String  //驾驶员名称
    lateinit var roadCard: String  //路牌
    lateinit var ccbh: String  //车次编号
    lateinit var clbh: String  //车辆编号
    var ywlx: Int = 0  //业务类型
    lateinit var startTime: String  //起始时间
    lateinit var endTime: String  //终止时间
    var startStationId: Int = 0//起始站点编号
    lateinit var startStationName: String//起始场站车站名称
    var endStationId: Int = 0//终止站点编号
    lateinit var endStationName: String//终止场站车站名称
    lateinit var fjnr: String // 附加内容
    lateinit var time: String//通知时间

    override fun readFromBytes(bytes: ByteArray) {
        val buf = ByteBuffer.wrap(bytes)

        line = "${buf.int}"
        roadCard = buf.readString() //路牌

        ccbh = buf.readString() //车次编号
        clbh = buf.readString() //车辆编号
        ywlx = buf.get().toInt() //业务类型
        ddlx = buf.get().toInt() //调度类型
        driverId = buf.readString() //驾驶员编号
        driverName = buf.readString() //驾驶员姓名
        buf.readString() //乘务员1编号
        buf.readString() //乘务员2编号

        //startTime = buf.readBCD(6) //起始时间
       // endTime = buf.readBCD(6) //终止时间

         startTime = DpUtil.parse8B07Time(buf.readBCD(6))
         endTime = DpUtil.parse8B07Time(buf.readBCD(6))

        startStationId = buf.int //起始站点编号
        startStationName = buf.readString() //起始场站车站名称

        endStationId = buf.int //终止站点编号
        endStationName = buf.readString() //终止场站车站名称

        fjnr = buf.readString() //附加内容
        time = buf.readBCD(6) //通知时间
    }
}